//https://codeforces.com/problemset/problem/1728/D
//题意：有一个字符串，a，b轮流从首位任意拿走一个字符，后拿的放在自己串的前面，a先手，最后拿到字符串字典序小的获胜
//思路：区间dp dp[i][j]表示在字符串第i个到第j-1个中理智游戏的胜负状态，每次状态转移有三种情况；
//1，选左右两端即i+1和j-1，由于a先手，只要不等a赢，等平局，从dp[i+1][j-1]转移
//2,选左边最近两个即i，i+1，a拿i+1，b拿i，，从dp[i+2][j]转移
//3，选右边最近两个即j-2，j-1，a拿j-2，b拿j-1，从dp[i][j-2]转移
#include<bits/stdc++.h>
using namespace std;
int dp[2001][2001]={0};
int main(){
    int t;
    scanf("%d",&t);
    while(t--){
        string s;
        cin>>s;
        int n=s.size();
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                dp[i][j]=0;
            }
        }
        for(int len=2;len<=n;len+=2){
            for(int l=0;l+len<=n;l++){
                int r=l+len;
                int temp1=-1,temp2=-1,temp3=-1;
                
                if(dp[l+1][r-1]) temp1=max(temp1,dp[l+1][r-1]);
                else if(s[l]==s[r-1]) temp1=0;

                if(dp[l+2][r]) temp2=max(temp2,dp[l+2][r]);
                else if(s[l]==s[l+1]) temp2=0;
                else if(s[l]<s[l+1]) temp2=1;

                if(dp[l][r-2]) temp3=max(temp3,dp[l][r-2]);
                else if(s[r-2]==s[r-1]) temp3=0;
                else if(s[r-2]>s[r-1]) temp3=1;

                dp[l][r]=max(temp1,min(temp2,temp3));
            }
        }
        if(dp[0][n]==-1) printf("Alice\n");
        else if(dp[0][n]==0) printf("Draw\n");
        else printf("BOb\n");
    }
}

//只判断回文不太行，反例baabaa
// #include<bits/stdc++.h>
// using namespace std;
// int main(){
//     int t;
//     scanf("%d",&t);
//     while(t--){
//         string s;
//         cin>>s;
//         int flag=1,len=s.length();
//         for(int i=0;i<len/2;i++){
//             if(s[0+i]!=s[len-1-i]){
//                 flag=0;
//                 break;
//             }
//         }
//         if(flag) printf("Draw\n");
//         else printf("Alice\n");
//     }
// }